package com.turnengine.client.local.unit.command.set;

import com.javabi.codebuilder.generated.IGeneratedCommandSet;
import com.turnengine.client.local.unit.bean.IStorageGroup;
import com.turnengine.client.local.unit.bean.IStorageItem;
import com.turnengine.client.local.unit.bean.IUnit;
import com.turnengine.client.local.unit.bean.IUnitCount;
import com.turnengine.client.local.unit.enums.UnitMove;
import com.turnengine.client.local.unit.enums.UnitNode;
import com.turnengine.client.local.unit.enums.UnitType;
import java.util.List;

/**
 * The I Local Unit Command Set.
 */
public interface ILocalUnitCommandSet extends IGeneratedCommandSet {

	IUnit addUnit(long loginId, int instanceId, String name, UnitNode node, UnitType type, UnitMove move, String groupName, String factionName);

	Boolean setStorageGroup(long loginId, int instanceId, IStorageGroup group);

	Boolean setStorageItem(long loginId, int instanceId, IStorageItem item);

	IUnit getUnitById(long loginId, int instanceId, int id);

	IUnit getUnitByName(long loginId, int instanceId, String name);

	List<IUnit> getUnits(long loginId, int instanceId);

	List<IUnit> getUnitsByFactionId(long loginId, int instanceId, int id);

	List<IUnit> getUnitsByFactionName(long loginId, int instanceId, String name);

	List<IUnit> getUnitsByGroupId(long loginId, int instanceId, int id);

	List<IUnit> getUnitsByGroupName(long loginId, int instanceId, String name);

	Boolean setUnitScore(long loginId, int instanceId, String name, String groupName, long score);

	long getUnitScore(long loginId, int instanceId, String name, String groupName);

	List<IStorageGroup> getStorageGroups(long loginId, int instanceId);

	List<IStorageItem> getStorageItems(long loginId, int instanceId);

	List<IUnitCount> getAllUnitsAtPlayer(long loginId, int instanceId);

	List<IUnitCount> getUnitsAtPlayer(long loginId, int instanceId, int groupId);
}
